package com.siashan.toolkit.oss.aws.core;

import java.io.Serializable;

/**
 * 亚马逊 AWS S3 OSS配置
 *
 * @author siashan
 * @date  2025/6/5 11:30
 */
public class AwsS3Config implements Serializable {

    private static final long serialVersionUID = 1L;
    /**
     * 域名
     */
    private String domain;
    /**
     * 路径前缀
     */
    private String prefix;
    /**
     * EndPoint
     */
    private String endPoint;
    /**
     * AccessKeyId
     */
    private String accessKeyId;
    /**
     * AccessKeySecret
     */
    private String accessKeySecret;
    /**
     * BucketName
     */
    private String bucketName;

    /**
     * 最大线程数，默认： 100
     */
    private Integer maxConnections = 100;


    /**
     * 区域
     */
    private String region;


    /**
     * true path-style nginx 反向代理和S3默认支持 pathStyle {http://endpoint/bucketname}
     * false supports virtual-hosted-style 阿里云等需要配置为 virtual-hosted-style
     * 模式{http://bucketname.endpoint}
     */
    private Boolean pathStyleAccess = false;


    public Boolean getPathStyleAccess() {
        return pathStyleAccess;
    }

    public void setPathStyleAccess(Boolean pathStyleAccess) {
        this.pathStyleAccess = pathStyleAccess;
    }

    public String getRegion() {
        return region;
    }

    public void setRegion(String region) {
        this.region = region;
    }

    public Integer getMaxConnections() {
        return maxConnections;
    }

    public void setMaxConnections(Integer maxConnections) {
        this.maxConnections = maxConnections;
    }

    public String getDomain() {
        return domain;
    }

    public void setDomain(String domain) {
        this.domain = domain;
    }

    public String getPrefix() {
        return prefix;
    }

    public void setPrefix(String prefix) {
        this.prefix = prefix;
    }

    public String getEndPoint() {
        return endPoint;
    }

    public void setEndPoint(String endPoint) {
        this.endPoint = endPoint;
    }

    public String getAccessKeyId() {
        return accessKeyId;
    }

    public void setAccessKeyId(String accessKeyId) {
        this.accessKeyId = accessKeyId;
    }

    public String getAccessKeySecret() {
        return accessKeySecret;
    }

    public void setAccessKeySecret(String accessKeySecret) {
        this.accessKeySecret = accessKeySecret;
    }

    public String getBucketName() {
        return bucketName;
    }

    public void setBucketName(String bucketName) {
        this.bucketName = bucketName;
    }
}
